// AllSHIDViewer.h: interface for the AllSHIDViewer class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_ALLSHIDVIEWER_H__DA5C2261_2E45_4684_AC48_2FC94DCFDAA3__INCLUDED_)
#define AFX_ALLSHIDVIEWER_H__DA5C2261_2E45_4684_AC48_2FC94DCFDAA3__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "RegisterObject.h"
#include "Register.h"
#include "AllSHIDViewerInfo.h"
#include "ObjectGenerator.h"
#include "Project.h"

class DllExport AllSHIDViewer : public RegisterObject<AllSHIDViewer, AllSHIDViewerInfo> 
{
	typedef RegisterTemplate<INT, AllSHIDViewerInfo*> SHIDViewerRegister;
	typedef ObjectGenerator<SHIDViewerRegister> Generator;

	DECLARE_DYNAMIC_EX(AllSHIDViewer);
public:
	enum{
		eAUTOCADVIEWER
	};
public:
	AllSHIDViewer();
	virtual ~AllSHIDViewer();

public:
	static AllSHIDViewer* Instance();
	static void Register(INT nID, AllSHIDViewerInfo* pInfo);

public:
	virtual void AddSupportHanger(const CString& strSHID) = 0;
	virtual void LoadSupport() = 0;
	virtual void ShowSelectView() = 0;
	virtual void LoadSupport(Project* pPrj) = 0;
	virtual void ClearSupport() = 0;
	virtual void RemoveSupportHanger(const CString& strSHID) = 0;
	virtual void EnableView(BOOL bEnable = TRUE) = 0;
private:
	static Generator m_Register;
};

#endif // !defined(AFX_ALLSHIDVIEWER_H__DA5C2261_2E45_4684_AC48_2FC94DCFDAA3__INCLUDED_)
